const { exec } = require('child_process') // nodejs子进程模块，用于创建一个cmd进程并执行命令行
const chalk = require('chalk')
const ora = require('ora')
// const { scp } = require('scp2')

// spinner.start();
// scp('./dist/.', {
//   ...server,  //  C:\Drivers\intel_sgx  /c/Users/wukong/Desktop
//   path: '\\D:\\\\ReleaseMZWeb',//'/d:/ReleaseMZWeb'  D:\\Softwares\\
// }, (err) => {
//   spinner.stop()
//   if (err) {
//     console.log(chalk.red(' 传输文件 发生了错误. \n'))
//     console.log(err)
//     process.exit(1)
//   }
//   console.log(chalk.cyan('  传输打包文件完成 complete.\n'))
// })


module.exports = {
  scp2: ({ host, port, username, password, uploadFileDir, targetDir, logPath = 'publish_logs.log' } = {}) => {
    const spinner = ora('文件正在上传到服务器...')
    spinner.start()
    const N = ''
    //  "open sftp://用户名:密码@服务器地址"
    //  "option confirm off"
    const cmd = `winscp.exe /console /command "option batch continue"  ${
      N} "open sftp://${username}:${password}@${host}:${port}" ${
      N} "option transfer binary" "put ${uploadFileDir} ${targetDir}" exit /log=${logPath} `

    //  D:\uploadProjectLog
    exec(cmd, (error, stout) => {
      if (error) {
        console.log(chalk.red(' 传输文件 发生了错误. \n'))
        console.log(error)
        process.exit(1)
      }
      console.log(stout)
      spinner.stop()
      //   console.log(chalk.cyan('  传输打包文件完成 complete.\n'))
      console.log('传输打包文件完成 ~~~~~ FTP发布完成！详情请看日志：' + logPath)
    })
  }
}
